// 全局图表管理器
class ChartManager {
  constructor() {
    this.charts = new Map()
    this.containers = new Map()
    this.isInitialized = false
    this.resizeObserver = null
    this.init()
  }

  init() {
    // 不监听窗口大小变化，保持固定尺寸
    // window.addEventListener('resize', this.handleResize.bind(this))

    // 监听页面可见性变化
    document.addEventListener('visibilitychange', this.handleVisibilityChange.bind(this))

    // 不检测控制台开关，保持固定尺寸
    // this.detectConsoleToggle()

    this.isInitialized = true
    console.log('图表管理器已初始化 - 固定尺寸模式')
  }

  // 检测控制台开关 - 已禁用
  detectConsoleToggle() {
    // 此功能已禁用，图表保持固定尺寸
    console.log('控制台开关检测已禁用，图表保持固定尺寸')
  }

  // 注册图表
  registerChart(containerId, chart, container) {
    this.charts.set(containerId, chart)
    this.containers.set(containerId, container)

    // 为容器添加图表引用
    if (container) {
      container._echarts = chart
      container._chartId = containerId
    }

    console.log(`图表已注册: ${containerId} - 固定尺寸模式`)
  }

  // 获取图表
  getChart(containerId) {
    return this.charts.get(containerId)
  }

  // 获取容器
  getContainer(containerId) {
    return this.containers.get(containerId)
  }

  // 处理窗口大小变化 - 已禁用
  handleResize() {
    // 此功能已禁用，图表保持固定尺寸
    console.log('窗口大小变化检测已禁用，图表保持固定尺寸')
  }

  // 处理页面可见性变化
  handleVisibilityChange() {
    if (!document.hidden) {
      console.log('页面变为可见，图表保持固定尺寸')
    }
  }

  // 重新调整所有图表 - 已禁用
  resizeAllCharts() {
    // 此功能已禁用，图表保持固定尺寸
    console.log('图表重新调整已禁用，保持固定尺寸')
  }

  // 强制重新初始化图表 - 已禁用
  forceReinitChart(containerId) {
    // 此功能已禁用，图表保持固定尺寸
    console.log(`图表重新初始化已禁用: ${containerId} - 保持固定尺寸`)
  }

  // 检查图表状态
  checkChartStatus(containerId) {
    const container = this.containers.get(containerId)
    const chart = this.charts.get(containerId)

    if (!container) {
      console.error(`容器未找到: ${containerId}`)
      return false
    }

    if (!chart) {
      console.error(`图表未找到: ${containerId}`)
      return false
    }

    const containerSize = {
      width: container.offsetWidth,
      height: container.offsetHeight,
      styleWidth: container.style.width,
      styleHeight: container.style.height
    }

    console.log(`图表状态检查 - ${containerId}:`, containerSize)

    return containerSize.width > 0 && containerSize.height > 0
  }

  // 获取所有图表状态
  getAllChartStatus() {
    const status = {}
    this.charts.forEach((chart, containerId) => {
      status[containerId] = this.checkChartStatus(containerId)
    })
    return status
  }

  // 清理所有图表
  disposeAllCharts() {
    this.charts.forEach((chart, containerId) => {
      try {
        chart.dispose()
        console.log(`图表已清理: ${containerId}`)
      } catch (error) {
        console.error(`清理图表失败: ${containerId}`, error)
      }
    })

    this.charts.clear()
    this.containers.clear()
  }
}

// 创建全局实例
const chartManager = new ChartManager()

// 导出
export default chartManager
export { ChartManager } 